T-mail

2. Краткие основы организации связи в FTN-сетях. Адресация. Соглашения

Об адресах в T-Mail

T-Mail предназначен для использования на системах, работающих в составе FidoNet-подобных сетей (FTN-сетей). Простота организации, минимум технических и программных средств, необходимых для создания и функционирования таких сетей, невысокая стоимость сделали их весьма популярными во всем мире. FTN-сети могут применяться практически где угодно с самыми различными целями. Наиболее крупной из них является собственно сеть FIDO - всемирная любительская сеть, ставшая родоначальником всех FTN-сетей, однако, практически каждый имеет возможность создать свою FTN-сеть для собственных нужд. Это может быть сеть, объединяющая подразделения и филиалы крупного предприятия или концерна, сеть, предназначенная для обменом информацией между разработчиками и пользователями определенных технических или программных средств - сферы использования подобных сетей могут быть самыми разнообразными. Рассмотрим пример организации и структуры FTN-сети.

FTN-сеть имеет иерархическую структуру (дерево или звезда):

Базовой, наименьшей структурной единицей каждой такой сети является узел (node). Информация обо всех узлах сводится в основной документ, определяющий состав и структуру сети - нодлист (nodelist). Каждый узел занимает одну строчку в нодлисте. Дальнейшее иерархическое объединение узлов в сети, регионы и зоны может осуществляться по самым разным признакам, часто - по географическому. Так, в сети FIDO сеть (net) - это объединение узлов локальной географической области, обычно определяемое удобной телефонной связью.

Регион (region) - это определенная географическая область, включающая узлы, которые могут быть объединены, либо, как исключение, не объединены в сети (независимые узлы - independent node).

Зона (zone) - это большая географическая область, включающая множество регионов и охватывающая одну или несколько стран и/или континентов. Таким образом, зоны подразделяются на регионы, которые, в свою очередь, подразделяются на сети.

Сети состоят из узлов, каждый из которых представляет собой систему с установленной почтовой программой - мэйлером. Кроме того, в сети могут присутствовать пойнты (points), это системы, которые не описаны в нодлисте как узлы, но связаны с сетью через один из узлов. узел, к которому подключен пойнт, называется для этого пойнта боссом (boss), через этот узел пойнт осуществляет весь обмен информацией с сетью.

При создании новых FTN-сетей желательно, чтобы номер зоны не совпадал с существующими. Каждая сеть может иметь одну или несколько зон, например, FIDO занимает зоны с 1-й по 6-ю.

Термины

Условимся о некоторых терминах, помимо описанных выше, которые будут использованы в документации.

СИСТЕМА - так мы будем называть компьютер (компьютеры) с установленной почтовой программой - мэйлером и имеющий хотя бы один узловой или пойнтовый адрес в какой-либо СЕТИ.

СЕАНС СВЯЗИ - так мы назовем процесс обмена информацией между двумя системами сети. При передаче информации с помощью модемов сеанс связи считается начавшимся с момента установления соединения модемами и заканчивается в момент разрыва этого соединения.

Если ваша система пытается установить соединение с удаленной системой, то такие ее действия мы будем называть ИСХОДЯЩИМ ВЫЗОВОМ.

Если же соединение пытается установить удаленная система, то такие ее действия мы будем называть ВХОДЯЩИМ ВЫЗОВОМ.

Если ваша система с помощью исходящего вызова установила сеанс связи, то такой сеанс мы будем называть ИСХОДЯЩИМ СЕАНСОМ СВЯЗИ.

Если же сеанс связи установлен с помощью входящего вызова удаленной системы, то такой сеанс мы будем называть ВХОДЯЩИМ СЕАНСОМ СВЯЗИ.

Структура адреса

Каждая система (УЗЕЛ или ПОЙНТ) имеет свой уникальный адрес в сети. Он в FTN-сети формируется следующим образом:

A:B/C.D

где:

A - номер зоны (например, 2);

B - номер сети, как правило, первые две цифры номера сети являются номером региона (например, 5030);

C - номер узла (например, 100);

D - номер пойнта (например, 15. Для узла равен 0 или отсутствует)

Таким образом, пойнтовая система номер 15 узла 100 сети 5030 региона 50 зоны 2 будет иметь адрес 2:5030/100.15. Сам узел 100 будет иметь адрес 2:5030/100 (что эквивалентно 2:5030/100.0, последний 0 часто опускается).

Соглашения об адресах в T-Mail

Поскольку T-Mail предназначен для функционирования в FTN-сетях, он использует адресацию, принятую в таких сетях. Это означает, что каждый узел сети описывается уникальным сочетанием трех или четырех целых чисел (см. выше):

zone:net/node.point(4-d адрес)

или

zone:net/node══════ (3-d адрес)

Ограничения для составляющих адресапри использовании T-Mail, таковы:

zone- от 1 до 32767

net ══- от 1 до 32767

node- от 0 до 32767

point - от 0 до 32767

Необходимо отметить, что при использовании файловых ящиков и при использовании Bink-Style Outbound некоторые ограничения будут иными, что указано в соответствующих разделах настоящей документации.

Если в данном документе вам встретится понятие "адрес", то имеется ввиду именно адрес, принятый в FTN-сетях, например, 2:5030/15.1.

Сокращенная запись адресов

В большинстве случаев (там, где это не оговорено особо) T-Mail понимает сокращенную запись адреса и вы можете ее использовать. При расшифровке в качестве базового адреса T-Mail использует основной адрес узла (переменная Address в файле t-mail.ctl).

Например, если адрес вашего узла 2:5030/15, то адрес 2:5030/15.1 можно записать следующими способами:

2:5030/15.1

5030/15.1

/15.1

15.1

.1

Адрес 2:5030/6.601 можно записать так:

2:5030/6.601

5030/6.601

/6.601

6.601

Адрес 2:469/48.12 можно записать только так:

2:469/48.12

469/48.12

Наконец, запись адреса 2:5030/8 (2:5030/8.0) выглядит так:

2:5030/8

2:5030/8.0

5030/8

5030/8.0

/8

/8.0

8.0

8

А вот сокращенной записи для адреса 1:150/89.5 для нашего примера существовать не будет.

Текущий адрес в очереди можно заменить символом '\'.

В дальнейшем подобные конструкции будем обозначать так: <address>.

Группы адресов

В большинстве случаев T-Mail позволяет использовать группы адресов. Для этого применяется символ '*'. Этот символ можно использовать для замены любого элемента адреса целиком, либо как часть элемента адреса. Во втором случае он может быть только последним в элементе адреса, как показано в примерах.

Ниже приведены примеры использования этого символа для описания группы адресов (по-прежнему предполагаем, что ваш адрес - 2:5030/15):

2:*/*.*═══ -══════════════ все адреса во 2-й зоне;

5030/*═══ -══════════════ то же, что 5030/*.0 - все узлы сети 2:5030;

/*═══════════ -══════════════ то же самое;

*.0══════════ -══════════════ то же самое;

2*:50*/10*.*════════ -══════════════ все узлы, номер зоны которых начинается с 2 (например, 2, 21, 228), у которых номер сети начинается с 50 (например, 50, 5030, 501, 5020, 5079), и номера которых начинаются на 10 (например, 10, 101, 100, 1034).

К примеру, этим условиям удовлетворяет адрес 21:501/1034;

*:*/*.*══ - все адреса;

All══════════ - все адреса;

Кроме того, можно определить группу адресов для узлов с определенным хабом, адрес которого задается с помощью конструкции _<hub address>, где <hub address> - адрес хаба. Сам хаб также входит в это множество. Например:

_2:5030/6══════════════ (все узлы, хабом для которых является 2:5030/6, включая 2:5030/6)

_5030/27═══════════════ (все узлы, хабом для которых является 2:5030/27, включая 2:5030/27)

В дальнейшем подобные конструкции будем обозначать так: <address group>.

Списки адресов

Группы адресов могут объединяться в список адресов, в котором группы или адреса следуют через символ "пробел", например:

5030/* 5040/*.* 5050/25.* /18

Приведенный пример следует читать так: "все узлы сети 5030, все системы сети 5040, узел 5050/25 и его пойнты, узел 18 в вашей сети".

В T-Mail зарезервировано несколько ключевых слов, которые можно использовать в строках, задающих список адресов:

Слово

Как T-Mail его воспринимает

All

То же, что *:*/*.*, то есть системы с любыми адресами.

Boss

Имеет смысл только для пойнтов. Заменяется на адрес, составленный из значений zone, net, node, взятых из адреса вашей системы. Иначе говоря: myzone:mynet/mynode.0.

Listed

"Все известныесистемы".Известными считаются системы,══ включенные══ в══ используемые══ вашей системой нодлисты и пойнтлисты, а также системы, описанные══ в══ файле══ подстановок══ subst.lst, структуракоторогобудет подробно рассмотрена ниже.

Protected

Все системы, сеансысвязи скоторыми защищены паролем.

Крометого,══ вспискахадресов,можно ══использоватьфлаги.

T-Mail считывает информацию о флагах для каждой системы из нодлистов и пойнтлистов, а также из файла subst.lst (глава 7). При этом некоторые флаги включают в себя (подразумевают) другие флаги и системе будут присвоены они все. Эти соответствия приведены в разделе IV. Например, флаг V32B включает в себя флаг V32, следовательно при считывании для системы флага V32B этой системе будут присвоены как флаг V32B, так и флаг V32. Обратное неверно, то есть, при считывании для системы флага V32 системе НЕ присваивается флаг V32B.

При использовании какого-либо флага в списке адресов T-Mail подразумевает все системы, для которых был установлен данный флаг. То есть, если в списке адресов указан флаг V32, то подразумеваться будут только те системы, для которых этот флаг был присвоен при считывании информации из нодлиста, пойнтлиста или файла subst.lst.

В списках адресов можно использовать следующие флаги нодлиста:

CM, HST, H14, H16, H19, H21, MNP, V42, V42B,

V32,V32B,V32T,VFC,V34,PEP,ZYX,

Z19, ISDNA, ISDNB, ISDNC, V110L, V110H, X75, V120L, V120H.

Флаг V32 автоматически присваивается системе пpи чтении строки из нодлиста в соответствии со значением поля baudrate в нодлисте 9600. Подробно флаги нодлиста описаны в разделе IV настоящей документации.

Кроме стандартных флагов нодлиста можно использовать псевдофлаги DOWN и PVT. Первый подразумевает системы, имеющие префиксы Down или Hold в нодлисте, второй - системы, имеющие префиксы Pvt в нодлисте.

Пример:

(subst.lst)

2:5030/1500 FLAGS ~DOWN════════════

; отмена статуса Down для узла

Есть возможность дополнительно задать до четырех пользовательских флагов, помимо указанных выше. Они описываются в файле t-mail.ctl с помощью переменных UserDef_Flag, которые имеют вид:

UserDef_Flag <flagname>

где<flagname> -имя флага.Флаги присваиваютсясистемам также, как и обычные флагинодлиста - либо внодлисте справа от поля<baudrate> (поля <flags>, <user flags>),либо в файле subst.lst. Использоватьих можно так же и во всех тех жеместах, где и обычные флаги нодлиста. Пользовательские флагимогут задаватьсяи использоватьсябез учетарегистра символов (то есть,══ кпримеру,══ флаги══ SUPER══ иSuPer══ являютсятождественными).

Пользовательские флаги должны быть описаны в t-mail.ctl ДО их первого использования в этом файле.

Пример использования пользовательского флага:

(t-mail.ctl)

UserDef_Flag══ ISKRA

(subst.lst)

5051/16══ ISKRA

(events.ctl)

[1] Hold ISKRA

[2] Hold 5030/* ISKRA

При задании списка можно использовать две дополнительные операции: исключение и инверсию. Они вводятся с помощью символов-префиксов '!' и '~'.

Символ '!' используется для того, чтобы исключить определенные адреса из списка адресов. Группа адресов, перед которой стоит символ "!", исключается из всего списка адресов, предшествующего ей в строке (см. пример ниже).

Символ '~' обозначает инверсию (обратное значение) флага, перед которым он стоит. При этом инвертируется только сам флаг, порожденные им умолчания (включаемые в него флаги) - нет. Например, выражение '~V34' обозначает "все системы, НЕ ИМЕЮЩИЕ флага V34" (и только его). Кроме того, инверсию можно использовать с ключевыми словами "Listed" и "Protected" (см. выше).

Примеры:

СM ZYX

обозначает "все CM-системы и системы, имеющие флаг ZYX (или Z19)"

СM !ZYX

обозначает "все CM-системы, кроме систем, имеющих флаг ZYX (или Z19)"

CM ~ZYX

обозначает "все CM-системы и системы, не имеющие флага ZYX (или Z19)"

ZYX !CM

обозначает "все системы, имеющие флаги ZYXZ19), кроме CM-систем"

СM !~ZYX

ZYX !~CM

обозначает "все СМ системы, имеющие флаг ZYX (или Z19)".

5030/*.*!CM

обозначает "все не-CM системы сети 5030".

5030/*.* 5020/*.* !5030/151 !5020/35

обозначает"всесистемысети5030,кроме5030/151,а также все системы сети 5020, кроме 5020/35"

5020/*.* 5030/*.* !~CM 5030/151 5010/*.* !5020/5

обозначает "все CM-системы сетей 5020и 5030, за исключением системы

5020/5, система 5030/151 и все системы сети 5010"

2:24*/*.* !V110L !V110H !X75 !V120L !V120H

обозначает "все системы региона 24 зоны 2, кроме ISDN-систем"

Список адресов может содержаться в отдельном файле. В этом случае вместо списка адресов следует указать имя этого файла, предварив его символом '@'. При этом в качестве разделителей внутри файла со списком адресов могут использоваться не только пробелы, но и символы новой строки.

Например:

@nodes.lst

или

@c:\t-mail\dummy\nodes.lst

В дальнейшем подобные конструкции будем обозначать так: <address list>.

Резюме

Таким образом, если вам в документации встретится обозначение <address>, то в этом месте должен быть точно указан конкретный адрес, например: 2:5030/15.5. Выражение <address group> или <addr group> подразумевает либо единственный адрес, либо группу адресов, например: 2:5030/*.*. А выражение <address list> или <addr list> подразумевает либо конкретный адрес, либо группу адресов, либо список адресов, например: 5030/*.* !CM !ZYX.